package Modele;

import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Enumeration;
import java.util.zip.ZipEntry;
import java.util.zip.ZipFile;
/**
 * Classe permettant d executer un fichier script .lua avec du java.
 * @author phil
 *
 */
public class LuaJava {

	/**
	 * La fonction statique permettant de lancer le script
	 * @param fichierLua est le chemin unix depuis le workspace pour indiquer ou se trouve le fichier .lua
	 */
	public static void runScript (File fichierLua) {
		
		String sortiestand ="";
		String sortierr="";
		// Fonctionne sur Mac et Linux.
		String commandToRun ="/usr/local/bin/lua "+fichierLua+" &";
		System.out.println("Tentative d'execution de : "+commandToRun);
		final Process process;
		try {
			process = Runtime.getRuntime().exec(commandToRun);
			new Thread() {
				public void run() {
					try {
						BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
						String line = "";
						try {
							while((line = reader.readLine()) != null) {
								// Traitement du flux de sortie de l'application si besoin est
							}
						} finally {
							reader.close();
						}
					} catch(IOException ioe) {
						ioe.printStackTrace();
					}
				}
			}.start();

			// Consommation de la sortie d'erreur de l'application externe dans un Thread separe
			new Thread() {
				public void run() {
					try {
						BufferedReader reader = new BufferedReader(new InputStreamReader(process.getErrorStream()));
						String line = "";
						try {
							while((line = reader.readLine()) != null) {
								// Traitement du flux d'erreur de l'application si besoin est
							}
						} finally {
							reader.close();
						}
					} catch(IOException ioe) {
						ioe.printStackTrace();
					}
				}
			}.start();

			
		} catch (IOException e) {
			System.out.println("Erreur dans l'execution JAVA");
			e.printStackTrace();
		}
	}

	
}